
<!doctype html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><title>Python: module src.utilities</title>
</head><body bgcolor="#f0f0f8">

<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
<tr bgcolor="#7799ee">
<td valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong><a href="src.html"><font color="#ffffff">src</font></a>.utilities</strong></big></big> (6 November 2007)</font></td
><td align=right valign=bottom
><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="file:/user/yhuang/pdb2pqr/trunk/pdb2pqr/src/utilities.py">/user/yhuang/pdb2pqr/trunk/pdb2pqr/src/utilities.py</a></font></td></tr></table>
    <p><tt>Utilities&nbsp;for&nbsp;PDB2PQR&nbsp;Suite<br>
&nbsp;<br>
This&nbsp;module&nbsp;provides&nbsp;various&nbsp;utilities&nbsp;for&nbsp;the&nbsp;PDB2PQR&nbsp;suite&nbsp;to&nbsp;be<br>
imported&nbsp;into&nbsp;other&nbsp;Python&nbsp;scripts.<br>
&nbsp;<br>
----------------------------<br>
&nbsp;<br>
PDB2PQR&nbsp;--&nbsp;An&nbsp;automated&nbsp;pipeline&nbsp;for&nbsp;the&nbsp;setup,&nbsp;execution,&nbsp;and&nbsp;analysis&nbsp;of<br>
Poisson-Boltzmann&nbsp;electrostatics&nbsp;calculations<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Copyright&nbsp;(c)&nbsp;2002-2010,&nbsp;Jens&nbsp;Erik&nbsp;Nielsen,&nbsp;University&nbsp;College&nbsp;Dublin;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Nathan&nbsp;A.&nbsp;Baker,&nbsp;Washington&nbsp;University&nbsp;in&nbsp;St.&nbsp;Louis;&nbsp;Paul&nbsp;Czodrowski&nbsp;&amp;&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Gerhard&nbsp;Klebe,&nbsp;University&nbsp;of&nbsp;Marburg<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;All&nbsp;rights&nbsp;reserved.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;Redistribution&nbsp;and&nbsp;use&nbsp;in&nbsp;source&nbsp;and&nbsp;binary&nbsp;forms,&nbsp;with&nbsp;or&nbsp;without&nbsp;modification,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;permitted&nbsp;provided&nbsp;that&nbsp;the&nbsp;following&nbsp;conditions&nbsp;are&nbsp;met:<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Redistributions&nbsp;of&nbsp;source&nbsp;code&nbsp;must&nbsp;retain&nbsp;the&nbsp;above&nbsp;copyright&nbsp;notice,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;list&nbsp;of&nbsp;conditions&nbsp;and&nbsp;the&nbsp;following&nbsp;disclaimer.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Redistributions&nbsp;in&nbsp;binary&nbsp;form&nbsp;must&nbsp;reproduce&nbsp;the&nbsp;above&nbsp;copyright&nbsp;notice,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this&nbsp;list&nbsp;of&nbsp;conditions&nbsp;and&nbsp;the&nbsp;following&nbsp;disclaimer&nbsp;in&nbsp;the&nbsp;documentation&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;and/or&nbsp;other&nbsp;materials&nbsp;provided&nbsp;with&nbsp;the&nbsp;distribution.<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Neither&nbsp;the&nbsp;names&nbsp;of&nbsp;University&nbsp;College&nbsp;Dublin,&nbsp;Washington&nbsp;University&nbsp;in&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;St.&nbsp;Louis,&nbsp;or&nbsp;University&nbsp;of&nbsp;Marburg&nbsp;nor&nbsp;the&nbsp;names&nbsp;of&nbsp;its&nbsp;contributors&nbsp;may&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;be&nbsp;used&nbsp;to&nbsp;endorse&nbsp;or&nbsp;promote&nbsp;products&nbsp;derived&nbsp;from&nbsp;this&nbsp;software&nbsp;without&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;specific&nbsp;prior&nbsp;written&nbsp;permission.<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;THIS&nbsp;SOFTWARE&nbsp;IS&nbsp;PROVIDED&nbsp;BY&nbsp;THE&nbsp;COPYRIGHT&nbsp;HOLDERS&nbsp;AND&nbsp;CONTRIBUTORS&nbsp;"AS&nbsp;IS"&nbsp;AND&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;ANY&nbsp;EXPRESS&nbsp;OR&nbsp;IMPLIED&nbsp;WARRANTIES,&nbsp;INCLUDING,&nbsp;BUT&nbsp;NOT&nbsp;LIMITED&nbsp;TO,&nbsp;THE&nbsp;IMPLIED&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;WARRANTIES&nbsp;OF&nbsp;MERCHANTABILITY&nbsp;AND&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE&nbsp;ARE&nbsp;DISCLAIMED.&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;IN&nbsp;NO&nbsp;EVENT&nbsp;SHALL&nbsp;THE&nbsp;COPYRIGHT&nbsp;OWNER&nbsp;OR&nbsp;CONTRIBUTORS&nbsp;BE&nbsp;LIABLE&nbsp;FOR&nbsp;ANY&nbsp;DIRECT,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;INDIRECT,&nbsp;INCIDENTAL,&nbsp;SPECIAL,&nbsp;EXEMPLARY,&nbsp;OR&nbsp;CONSEQUENTIAL&nbsp;DAMAGES&nbsp;(INCLUDING,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;BUT&nbsp;NOT&nbsp;LIMITED&nbsp;TO,&nbsp;PROCUREMENT&nbsp;OF&nbsp;SUBSTITUTE&nbsp;GOODS&nbsp;OR&nbsp;SERVICES;&nbsp;LOSS&nbsp;OF&nbsp;USE,&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;DATA,&nbsp;OR&nbsp;PROFITS;&nbsp;OR&nbsp;BUSINESS&nbsp;INTERRUPTION)&nbsp;HOWEVER&nbsp;CAUSED&nbsp;AND&nbsp;ON&nbsp;ANY&nbsp;THEORY&nbsp;OF&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;LIABILITY,&nbsp;WHETHER&nbsp;IN&nbsp;CONTRACT,&nbsp;STRICT&nbsp;LIABILITY,&nbsp;OR&nbsp;TORT&nbsp;(INCLUDING&nbsp;NEGLIGENCE&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;OR&nbsp;OTHERWISE)&nbsp;ARISING&nbsp;IN&nbsp;ANY&nbsp;WAY&nbsp;OUT&nbsp;OF&nbsp;THE&nbsp;USE&nbsp;OF&nbsp;THIS&nbsp;SOFTWARE,&nbsp;EVEN&nbsp;IF&nbsp;ADVISED&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;OF&nbsp;THE&nbsp;POSSIBILITY&nbsp;OF&nbsp;SUCH&nbsp;DAMAGE.<br>
&nbsp;<br>
----------------------------</tt></p>
<p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#aa55cc">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
    
<tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="math.html">math</a><br>
</td><td width="25%" valign=top><a href="os.html">os</a><br>
</td><td width="25%" valign=top><a href="string.html">string</a><br>
</td><td width="25%" valign=top><a href="sys.html">sys</a><br>
</td></tr></table></td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#eeaa77">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
    
<tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><dl><dt><a name="-add"><strong>add</strong></a>(coords1, coords2)</dt><dd><tt>Add&nbsp;one&nbsp;3-dimensional&nbsp;point&nbsp;to&nbsp;another<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords1:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords2:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;list:&nbsp;&nbsp;List&nbsp;of&nbsp;coordinates&nbsp;equal&nbsp;to&nbsp;coords2&nbsp;+&nbsp;coords1&nbsp;(list)</tt></dd></dl>
 <dl><dt><a name="-analyzeConnectivity"><strong>analyzeConnectivity</strong></a>(map, key)</dt><dd><tt>Analyze&nbsp;the&nbsp;connectivity&nbsp;of&nbsp;a&nbsp;given&nbsp;map&nbsp;using&nbsp;the&nbsp;key&nbsp;value.<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;map:&nbsp;&nbsp;The&nbsp;map&nbsp;to&nbsp;analyze&nbsp;(dict)<br>
&nbsp;&nbsp;&nbsp;&nbsp;key:&nbsp;&nbsp;The&nbsp;key&nbsp;value&nbsp;(variable)<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;list:&nbsp;A&nbsp;list&nbsp;of&nbsp;connected&nbsp;values&nbsp;to&nbsp;the&nbsp;key&nbsp;(list)</tt></dd></dl>
 <dl><dt><a name="-cross"><strong>cross</strong></a>(coords1, coords2)</dt><dd><tt>Find&nbsp;the&nbsp;cross&nbsp;product&nbsp;of&nbsp;two&nbsp;3-dimensional&nbsp;points<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords1:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords2:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;list:&nbsp;&nbsp;Cross&nbsp;product&nbsp;coords2&nbsp;and&nbsp;coords1&nbsp;(list)</tt></dd></dl>
 <dl><dt><a name="-distance"><strong>distance</strong></a>(coords1, coords2)</dt><dd><tt>Calculate&nbsp;the&nbsp;distance&nbsp;between&nbsp;two&nbsp;coordinates,&nbsp;as&nbsp;denoted&nbsp;by<br>
&nbsp;<br>
&nbsp;&nbsp;&nbsp;&nbsp;dist&nbsp;=&nbsp;sqrt((x2-&nbsp;x1)^2&nbsp;+&nbsp;(y2&nbsp;-&nbsp;y1)^2&nbsp;+&nbsp;(z2&nbsp;-&nbsp;z1)^2))<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords1:&nbsp;Coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords2:&nbsp;Coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;dist:&nbsp;&nbsp;Distance&nbsp;between&nbsp;the&nbsp;two&nbsp;coordinates&nbsp;(float)</tt></dd></dl>
 <dl><dt><a name="-dot"><strong>dot</strong></a>(coords1, coords2)</dt><dd><tt>Find&nbsp;the&nbsp;dot&nbsp;product&nbsp;of&nbsp;two&nbsp;3-dimensional&nbsp;points<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords1:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords2:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;value:&nbsp;&nbsp;Dot&nbsp;product&nbsp;coords2&nbsp;and&nbsp;coords1&nbsp;(float)</tt></dd></dl>
 <dl><dt><a name="-factorial"><strong>factorial</strong></a>(n)</dt><dd><tt>Returns&nbsp;the&nbsp;factorial&nbsp;of&nbsp;the&nbsp;given&nbsp;number&nbsp;n</tt></dd></dl>
 <dl><dt><a name="-getAngle"><strong>getAngle</strong></a>(coords1, coords2, coords3)</dt><dd><tt>Get&nbsp;the&nbsp;angle&nbsp;between&nbsp;three&nbsp;coordinates<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords1:&nbsp;&nbsp;The&nbsp;first&nbsp;coordinate&nbsp;set&nbsp;(atom)<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords2:&nbsp;&nbsp;The&nbsp;second&nbsp;(vertex)&nbsp;coordinate&nbsp;set&nbsp;(atom)<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords3:&nbsp;&nbsp;The&nbsp;third&nbsp;coordinate&nbsp;set&nbsp;(atom)<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;angle:&nbsp;&nbsp;The&nbsp;angle&nbsp;between&nbsp;the&nbsp;atoms&nbsp;(float)</tt></dd></dl>
 <dl><dt><a name="-getDatFile"><strong>getDatFile</strong></a>(name)</dt><dd><tt>Grab&nbsp;a&nbsp;data&nbsp;file.&nbsp;If&nbsp;the&nbsp;file&nbsp;cannot&nbsp;be&nbsp;found&nbsp;in&nbsp;the<br>
given&nbsp;directory,&nbsp;try&nbsp;the&nbsp;current&nbsp;system&nbsp;path.<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;&nbsp;The&nbsp;name&nbsp;of&nbsp;the&nbsp;file&nbsp;to&nbsp;get&nbsp;(string)<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;&nbsp;The&nbsp;path&nbsp;to&nbsp;the&nbsp;file&nbsp;(string)</tt></dd></dl>
 <dl><dt><a name="-getDihedral"><strong>getDihedral</strong></a>(coords1, coords2, coords3, coords4)</dt><dd><tt>Calculate&nbsp;the&nbsp;angle&nbsp;using&nbsp;the&nbsp;four&nbsp;atoms<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords1:&nbsp;First&nbsp;of&nbsp;four&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords2:&nbsp;Second&nbsp;of&nbsp;four<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords3:&nbsp;Third&nbsp;of&nbsp;four<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords4:&nbsp;Fourth&nbsp;of&nbsp;four<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;value:&nbsp;Size&nbsp;of&nbsp;the&nbsp;angle&nbsp;(float)</tt></dd></dl>
 <dl><dt><a name="-getFFfile"><strong>getFFfile</strong></a>(name)</dt><dd><tt>Grab&nbsp;the&nbsp;forcefield&nbsp;file.&nbsp;&nbsp;May&nbsp;or&nbsp;may&nbsp;not&nbsp;residue&nbsp;in&nbsp;the&nbsp;dat/<br>
directory.</tt></dd></dl>
 <dl><dt><a name="-getNamesFile"><strong>getNamesFile</strong></a>(name)</dt><dd><tt>Grab&nbsp;the&nbsp;*.names&nbsp;file&nbsp;that&nbsp;contains&nbsp;the&nbsp;XML&nbsp;mapping.<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;name:&nbsp;&nbsp;The&nbsp;name&nbsp;of&nbsp;the&nbsp;forcefield&nbsp;(string)<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;&nbsp;The&nbsp;path&nbsp;to&nbsp;the&nbsp;file&nbsp;(string)</tt></dd></dl>
 <dl><dt><a name="-getPDBFile"><strong>getPDBFile</strong></a>(path)</dt><dd><tt>Obtain&nbsp;a&nbsp;PDB&nbsp;file.&nbsp;&nbsp;First&nbsp;check&nbsp;the&nbsp;path&nbsp;given&nbsp;on&nbsp;the&nbsp;command<br>
line&nbsp;-&nbsp;if&nbsp;that&nbsp;file&nbsp;is&nbsp;not&nbsp;available,&nbsp;obtain&nbsp;the&nbsp;file&nbsp;from&nbsp;the<br>
PDB&nbsp;webserver&nbsp;at&nbsp;<a href="http://www.rcsb.org/pdb/">http://www.rcsb.org/pdb/</a>&nbsp;.<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;&nbsp;Name&nbsp;of&nbsp;PDB&nbsp;file&nbsp;to&nbsp;obtain&nbsp;(string)<br>
&nbsp;<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;file:&nbsp;&nbsp;File&nbsp;object&nbsp;containing&nbsp;PDB&nbsp;file&nbsp;(file&nbsp;object)</tt></dd></dl>
 <dl><dt><a name="-normalize"><strong>normalize</strong></a>(coords)</dt><dd><tt>Normalize&nbsp;a&nbsp;set&nbsp;of&nbsp;coordinates<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;list:&nbsp;normalized&nbsp;coordinates&nbsp;(list)</tt></dd></dl>
 <dl><dt><a name="-shortestPath"><strong>shortestPath</strong></a>(graph, start, end, path<font color="#909090">=[]</font>)</dt><dd><tt>Uses&nbsp;recursion&nbsp;to&nbsp;find&nbsp;the&nbsp;shortest&nbsp;path&nbsp;from&nbsp;one&nbsp;node&nbsp;to<br>
another&nbsp;in&nbsp;an&nbsp;unweighted&nbsp;graph.&nbsp;&nbsp;Adapted&nbsp;from<br>
<a href="http://www.python.org/doc/essays/graphs.html">http://www.python.org/doc/essays/graphs.html</a>&nbsp;.<br>
&nbsp;<br>
Parameters:<br>
&nbsp;&nbsp;&nbsp;&nbsp;graph:&nbsp;A&nbsp;mapping&nbsp;of&nbsp;the&nbsp;graph&nbsp;to&nbsp;analyze,&nbsp;of&nbsp;the&nbsp;form<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{0:&nbsp;[1,2],&nbsp;1:[3,4],&nbsp;...}&nbsp;.&nbsp;Each&nbsp;key&nbsp;has&nbsp;a&nbsp;list<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;edges.<br>
&nbsp;&nbsp;&nbsp;&nbsp;start:&nbsp;The&nbsp;ID&nbsp;of&nbsp;the&nbsp;key&nbsp;to&nbsp;start&nbsp;the&nbsp;analysis&nbsp;from<br>
&nbsp;&nbsp;&nbsp;&nbsp;end:&nbsp;&nbsp;&nbsp;The&nbsp;ID&nbsp;of&nbsp;the&nbsp;key&nbsp;to&nbsp;end&nbsp;the&nbsp;analysis<br>
&nbsp;&nbsp;&nbsp;&nbsp;path:&nbsp;&nbsp;Optional&nbsp;argument&nbsp;used&nbsp;during&nbsp;the&nbsp;recursive&nbsp;step<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;to&nbsp;keep&nbsp;the&nbsp;current&nbsp;path&nbsp;up&nbsp;to&nbsp;that&nbsp;point<br>
&nbsp;<br>
Returns:<br>
&nbsp;&nbsp;&nbsp;&nbsp;(variable):&nbsp;Returns&nbsp;a&nbsp;list&nbsp;of&nbsp;the&nbsp;shortest&nbsp;path&nbsp;(list)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns&nbsp;None&nbsp;if&nbsp;start&nbsp;and&nbsp;end&nbsp;are&nbsp;not<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;connected</tt></dd></dl>
 <dl><dt><a name="-sortDictByValue"><strong>sortDictByValue</strong></a>(dict)</dt><dd><tt>Sort&nbsp;a&nbsp;dictionary&nbsp;by&nbsp;its&nbsp;values<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;dict:&nbsp;&nbsp;The&nbsp;dictionary&nbsp;to&nbsp;sort&nbsp;(dict)<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;items:&nbsp;The&nbsp;dictionary&nbsp;sorted&nbsp;by&nbsp;value&nbsp;(list)</tt></dd></dl>
 <dl><dt><a name="-subtract"><strong>subtract</strong></a>(coords1, coords2)</dt><dd><tt>Subtract&nbsp;one&nbsp;3-dimensional&nbsp;point&nbsp;from&nbsp;another<br>
&nbsp;<br>
Parameters<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords1:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
&nbsp;&nbsp;&nbsp;&nbsp;coords2:&nbsp;coordinates&nbsp;of&nbsp;form&nbsp;[x,y,z]<br>
Returns<br>
&nbsp;&nbsp;&nbsp;&nbsp;list:&nbsp;&nbsp;List&nbsp;of&nbsp;coordinates&nbsp;equal&nbsp;to&nbsp;coords1&nbsp;-&nbsp;coords2&nbsp;(list)</tt></dd></dl>
</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#55aa55">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
    
<tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%"><strong>DIHEDRAL</strong> = 57.2958<br>
<strong>SMALL</strong> = 9.9999999999999995e-08<br>
<strong>__author__</strong> = 'Todd Dolinsky, Yong Huang'<br>
<strong>__date__</strong> = '6 November 2007'</td></tr></table><p>
<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
<tr bgcolor="#7799ee">
<td colspan=3 valign=bottom>&nbsp;<br>
<font color="#ffffff" face="helvetica, arial"><big><strong>Author</strong></big></font></td></tr>
    
<tr><td bgcolor="#7799ee"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
<td width="100%">Todd&nbsp;Dolinsky,&nbsp;Yong&nbsp;Huang</td></tr></table>
</body></html>